|
RAIS
3.2
|
00001 00029 using System; 00030 using System.Collections.Generic; 00031 using System.Text; 00032 using System.Xml; 00033 using System.Transactions; 00034 00035 using RAIS.Common.DynamicMaskManagement; 00036 using RAIS.Common.UserManagement; 00037 00038 using DataRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRole>; 00039 using DataRoleAttributes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.DataRoleAttribute>; 00040 using FunctionRoles = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole>; 00041 using FunctionRoleCategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Category>; 00042 using FunctionRoleSubcategories = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.FunctionRole.Subcategory>; 00043 using Masks = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Mask>; 00044 using Regions = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Region>; 00045 using Districts = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.District>; 00046 using Facilities = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Facility>; 00047 using Practices = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.Practice>; 00048 using UserTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserTypeData>; 00049 using Users = System.Collections.Generic.Dictionary<string, RAIS.Common.UserManagement.UserData>; 00050 using MessageBoxRestrictions = System.Collections.Generic.List<RAIS.Common.UserManagement.MessageBoxRestriction>; 00051 00052 namespace RAIS.ApplicationLogicLayer 00053 { 00057 public class UserManagement 00058 { 00059 #region Public static methods 00060 00061 00062 00063 public static void InitializeDAL() 00064 { 00065 new DataAccessLayer.UserManagement(); 00066 } 00076 public static UserData GetUserData(string userName) 00077 { 00078 return DataAccessLayer.UserManagement.GetUserData(userName); 00079 } 00080 00081 //#-# 00082 public static List<UserAssignment> GetUserAssignmentsForUser(UserData user, DateTime selectedDate) 00083 { 00084 return DataAccessLayer.UserManagement.GetUserAssignmentsForUser(user, selectedDate); 00085 } 00086 public static List<UserAssignment> GetUserAssignmentsForUser(UserData user) 00087 { 00088 return DataAccessLayer.UserManagement.GetUserAssignmentsForUser(user); 00089 } 00090 00091 //#-# 00092 public static List<Facility> getFacilitiesByPractice(int practiceID) 00093 { 00094 return DataAccessLayer.UserManagement.getFacilitiesByPractice(practiceID); 00095 } 00096 00097 public static List<UserAssignment> GetUserAssignmentHistoryForUser(UserData user) 00098 { 00099 return DataAccessLayer.UserManagement.GetUserAssignmentHistoryForUser(user); 00100 } 00107 public static bool LoginUser(UserData userData) 00108 { 00109 return RAIS.DataAccessLayer.UserManagement.LoginUser(userData); 00110 } 00117 public static bool LogoutUser(UserData userData, bool isLoggOffClick) 00118 { 00119 return RAIS.DataAccessLayer.UserManagement.LogoutUser(userData, isLoggOffClick); 00120 } 00128 public static bool AddAccountRequest(UserData userData, ref string returnMessage) 00129 { 00130 return RAIS.DataAccessLayer.UserManagement.AddAccountRequest(userData, ref returnMessage); 00131 } 00139 public static bool ReleaseAccountRequest(UserData userData, ref string returnMessage) 00140 { 00141 if (ValidateUserDataModification(userData, ref returnMessage)) 00142 return RAIS.DataAccessLayer.UserManagement.ReleaseAccountRequest(userData, ref returnMessage); 00143 else 00144 return false; 00145 } 00153 public static bool RejectAccountRequest(UserData userData, ref string returnMessage) 00154 { 00155 return RAIS.DataAccessLayer.UserManagement.RejectAccountRequest(userData, ref returnMessage); 00156 } 00164 public static bool AddUser(UserData userData, ref string returnMessage) 00165 { 00166 return ValidateNewUserData(userData, ref returnMessage) && 00167 DataAccessLayer.UserManagement.AddUser(userData, ref returnMessage); 00168 } 00177 public static bool ModifyUser(UserData userData, ref string returnMessage) 00178 { 00179 if (ValidateUserDataModification(userData, ref returnMessage)) 00180 return DataAccessLayer.UserManagement.ModifyUser(userData, ref returnMessage); 00181 else 00182 return false; 00183 } 00189 public static Users Users 00190 { 00191 get 00192 { 00193 Users users = DataAccessLayer.UserManagement.Users; 00194 //Users lockedUsers = new Users(); 00195 //foreach (UserData user in users.Values) 00196 //{ 00197 // if (user.Locked) 00198 // lockedUsers.Add(user.Login, user); 00199 //} 00200 //foreach (UserData lockedUser in lockedUsers.Values) 00201 //{ 00202 // users.Remove(lockedUser.Login); 00203 //} 00204 return users; 00205 } 00206 } 00212 public static UserTypes UserTypes 00213 { 00214 get 00215 { 00216 return DataAccessLayer.UserManagement.UserTypes; 00217 } 00218 } 00224 public static DataRoles DataRoles 00225 { 00226 get 00227 { 00228 return DataAccessLayer.UserManagement.DataRoles; 00229 } 00230 } 00237 public static Practices Practices 00238 { 00239 get 00240 { 00241 return DataAccessLayer.UserManagement.Practices; 00242 } 00243 } 00244 00250 public static Facilities Facilities 00251 { 00252 get 00253 { 00254 return DataAccessLayer.UserManagement.Facilities; 00255 } 00256 } 00262 public static Regions Regions 00263 { 00264 get 00265 { 00266 return DataAccessLayer.UserManagement.Regions; 00267 } 00268 } 00274 public static FunctionRoles FunctionalRoles 00275 { 00276 get 00277 { 00278 return DataAccessLayer.UserManagement.FunctionalRoles; 00279 } 00280 } 00286 public static FunctionRoles PredefinedFunctionalRoles 00287 { 00288 get 00289 { 00290 return DataAccessLayer.UserManagement.PredefinedFunctionalRoles; 00291 } 00292 } 00298 public static FunctionRoleCategories FunctionalRoleCategories 00299 { 00300 get 00301 { 00302 return DataAccessLayer.UserManagement.FunctionalRoleCategories; 00303 } 00304 } 00309 public static FunctionRoleCategories GetAllowCustomizationCategories() 00310 { 00311 return DataAccessLayer.UserManagement.GetAllowCustomizationCategories(); 00312 } 00318 public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category) 00319 { 00320 return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category); 00321 } 00328 public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category, bool withAll) 00329 { 00330 return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category, withAll); 00331 } 00339 public static FunctionRoleSubcategories GetFunctionalRoleSubcategories(FunctionRole.Category category, bool withAll, bool showProtectors, bool showEvaluators) 00340 { 00341 return DataAccessLayer.UserManagement.GetFunctionalRoleSubcategories(category, withAll, showProtectors, showEvaluators); 00342 } 00349 public static Masks GetMasks(FunctionRole.Category category, FunctionRole.Subcategory subcategory) 00350 { 00351 return DataAccessLayer.UserManagement.GetMasks(category, subcategory); 00352 } 00359 public static Masks GetMasksWithoutAll(FunctionRole.Category category, FunctionRole.Subcategory subcategory) 00360 { 00361 return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, false); 00362 } 00370 public static Masks GetMasksWithoutAllWhithHidden(FunctionRole.Category category, FunctionRole.Subcategory subcategory) 00371 { 00372 return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, true); 00373 } 00381 public static Masks GetMasksWithoutAll(FunctionRole.Category category, FunctionRole.Subcategory subcategory, DynamicMask.DynamicMaskTypeData dynamicMaskType) 00382 { 00383 return DataAccessLayer.UserManagement.GetMasksWithoutAll(category, subcategory, dynamicMaskType); 00384 } 00391 public static XmlDocument GetSiteMapByUser(UserData user, bool designMode) 00392 { 00393 return DataAccessLayer.UserManagement.GetSiteMapByUser(user, designMode); 00394 } 00402 public static void GetMaskByReference(string reference, out string CategoryID, out string SubcategoryID, out string MaskID) 00403 { 00404 DataAccessLayer.UserManagement.GetMaskByReference(reference, out CategoryID, out SubcategoryID, out MaskID); 00405 } 00411 public static Districts GetDistrictsByRegion(Region region) 00412 { 00413 if (region == null) 00414 return null; 00415 else 00416 return DataAccessLayer.UserManagement.GetDistrictsByRegion(region); 00417 } 00424 public static Facilities GetFacilitiesByRegionAndDistrict(Region region, District district) 00425 { 00426 if (region == null || district == null) 00427 return null; 00428 else 00429 return DataAccessLayer.UserManagement.GetFacilitiesByRegionAndDistrict(region, district); 00430 } 00438 public static bool AddDataRole(string dataRoleName, ref string returnMessage) 00439 { 00440 return DataAccessLayer.UserManagement.AddDataRole(dataRoleName, ref returnMessage); 00441 } 00447 //public static Dictionary<string, DataRoleAttribute> GetDataRoleAttributes(DataRole dataRole) 00448 //{ 00449 // return DataAccessLayer.UserManagement.GetDataRoleAttributes(dataRole); 00450 //} 00459 public static bool AddDataRoleAttribute(DataRole dataRole, DataRoleAttribute dataRoleAttribute, ref string returnMessage) 00460 { 00461 return DataAccessLayer.UserManagement.AddDataRoleAttribute(dataRole, dataRoleAttribute, ref returnMessage); 00462 } 00471 public static bool RemoveDataRoleAttribute(DataRole dataRole, DataRoleAttribute dataRoleAttribute, ref string returnMessage) 00472 { 00473 return DataAccessLayer.UserManagement.RemoveDataRoleAttribute(dataRole, dataRoleAttribute, ref returnMessage); 00474 } 00482 public static bool RemoveDataRole(DataRole dataRole, ref string returnMessage) 00483 { 00484 return DataAccessLayer.UserManagement.RemoveDataRole(dataRole, ref returnMessage); 00485 } 00493 public static bool SaveDataRole(DataRole dataRole, ref string returnMessage) 00494 { 00495 using (TransactionScope ts = new TransactionScope()) 00496 { 00497 bool success = true; 00498 00499 foreach (DataRoleAttribute attribute in dataRole.RemovedAttributes.Values) 00500 { 00501 if (!RemoveDataRoleAttribute(dataRole, attribute, ref returnMessage)) 00502 { 00503 success = false; 00504 break; 00505 } 00506 } 00507 00508 if (success) 00509 { 00510 foreach (DataRoleAttribute attribute in dataRole.AddedAttributes.Values) 00511 { 00512 if (!AddDataRoleAttribute(dataRole, attribute, ref returnMessage)) 00513 { 00514 success = false; 00515 break; 00516 } 00517 } 00518 } 00519 if (success) 00520 { 00521 success = DataAccessLayer.UserManagement.SaveDataRole(dataRole, ref returnMessage); 00522 } 00523 if (success) 00524 { 00525 returnMessage = RAIS.Common.Messages.MODIFICATIONS_SAVED; 00526 dataRole.Modified = false; 00527 ts.Complete(); 00528 } 00529 return success; 00530 } 00531 } 00539 public static bool RemoveFunctionRole(FunctionRole functionRole, ref string returnMessage) 00540 { 00541 return DataAccessLayer.UserManagement.RemoveFunctionRole(functionRole, ref returnMessage); 00542 } 00550 public static bool AddFunctionRole(string functionRoleName, ref string returnMessage) 00551 { 00552 return DataAccessLayer.UserManagement.AddFunctionRole(functionRoleName, ref returnMessage); 00553 } 00562 public static bool AddFunctionRole(string functionRoleName, FunctionRole.ValidationType validationType, ref string returnMessage) 00563 { 00564 return DataAccessLayer.UserManagement.AddFunctionRole(functionRoleName, validationType, ref returnMessage); 00565 } 00574 public static bool AddFunctionRoleAttribute(FunctionRole functionRole, FunctionRoleAttribute functionRoleAttribute, ref string returnMessage) 00575 { 00576 return DataAccessLayer.UserManagement.AddFunctionRoleAttribute(functionRole, functionRoleAttribute, ref returnMessage); 00577 } 00586 public static bool RemoveFunctionRoleAttribute(FunctionRole functionRole, FunctionRoleAttribute functionRoleAttribute, ref string returnMessage) 00587 { 00588 return DataAccessLayer.UserManagement.RemoveFunctionRoleAttribute(functionRole, functionRoleAttribute, ref returnMessage); 00589 } 00598 public static bool AddUserType(FunctionRole functionRole, UserTypeData userType, ref string returnMessage) 00599 { 00600 return DataAccessLayer.UserManagement.AddUserType(functionRole, userType, ref returnMessage); 00601 } 00610 public static bool RemoveUserType(FunctionRole functionRole, UserTypeData userType, ref string returnMessage) 00611 { 00612 return DataAccessLayer.UserManagement.RemoveUserType(functionRole, userType, ref returnMessage); 00613 } 00621 public static bool SaveFunctionRole(FunctionRole functionRole, ref string returnMessage) 00622 { 00623 using (TransactionScope ts = new TransactionScope()) 00624 { 00625 bool success = true; 00626 00627 foreach (FunctionRoleAttribute attribute in functionRole.RemovedAttributes.Values) 00628 { 00629 if (!RemoveFunctionRoleAttribute(functionRole, attribute, ref returnMessage)) 00630 { 00631 success = false; 00632 break; 00633 } 00634 } 00635 00636 if (success) 00637 { 00638 foreach (FunctionRoleAttribute attribute in functionRole.AddedAttributes.Values) 00639 { 00640 if (!AddFunctionRoleAttribute(functionRole, attribute, ref returnMessage)) 00641 { 00642 success = false; 00643 break; 00644 } 00645 } 00646 } 00647 if (success) 00648 { 00649 foreach (UserTypeData userType in functionRole.RemovedUserTypes.Values) 00650 { 00651 if (!RemoveUserType(functionRole, userType, ref returnMessage)) 00652 { 00653 success = false; 00654 break; 00655 } 00656 } 00657 } 00658 if (success) 00659 { 00660 foreach (UserTypeData userType in functionRole.AddedUserTypes.Values) 00661 { 00662 if (!AddUserType(functionRole, userType, ref returnMessage)) 00663 { 00664 success = false; 00665 break; 00666 } 00667 } 00668 } 00669 if (success) 00670 { 00671 success = DataAccessLayer.UserManagement.SaveFunctionRole(functionRole, ref returnMessage); 00672 } 00673 if (success) 00674 { 00675 returnMessage = RAIS.Common.Messages.MODIFICATIONS_SAVED; 00676 functionRole.Modified = false; 00677 ts.Complete(); 00678 } 00679 return success; 00680 } 00681 } 00689 public static bool UserExists(string userName, ref string returnMessage) 00690 { 00691 if (DataAccessLayer.UserManagement.UserExists(userName)) 00692 { 00693 returnMessage = Common.Messages.USER_EXISTS_MESSAGE; 00694 return true; 00695 } 00696 else 00697 { 00698 return false; 00699 } 00700 } 00705 public static Facility GetFacilityByID(int facilityID) 00706 { 00707 return RAIS.DataAccessLayer.UserManagement.GetFacilityByID(facilityID); 00708 } 00713 public static Department GetDepartmentByID(int departmentID) 00714 { 00715 return RAIS.DataAccessLayer.UserManagement.GetDepartmentByID(departmentID); 00716 } 00721 public static FunctionRoles GetFunctionalRolesByUserType(UserTypeData userTypeData) 00722 { 00723 return RAIS.DataAccessLayer.UserManagement.GetFunctionalRolesByUserType(userTypeData); 00724 } 00732 public static bool ValidateRemoveUserTypeFromFunctionRole(FunctionRole functionRole, UserTypeData userType, ref string returnMessage) 00733 { 00734 return RAIS.DataAccessLayer.UserManagement.ValidateRemoveUserTypeFromFunctionRole(functionRole, userType, ref returnMessage); 00735 } 00742 public static bool AddSubcategory(FunctionRole.Subcategory subcategory, ref string returnMessage) 00743 { 00744 return RAIS.DataAccessLayer.UserManagement.AddSubcategory(subcategory, ref returnMessage); 00745 } 00752 public static bool SaveSubcategory(FunctionRole.Subcategory subcategory, ref string returnMessage) 00753 { 00754 return RAIS.DataAccessLayer.UserManagement.SaveSubcategory(subcategory, ref returnMessage); 00755 } 00762 public static bool SaveSubcategoryOrder(FunctionRole.Subcategory subcategory, ref string returnMessage) 00763 { 00764 return RAIS.DataAccessLayer.UserManagement.SaveSubcategoryOrder(subcategory, ref returnMessage); 00765 } 00772 public static bool RemoveSubcategory(int subcategoryID, ref string returnMessage) 00773 { 00774 return RAIS.DataAccessLayer.UserManagement.RemoveSubcategory(subcategoryID, ref returnMessage); 00775 } 00781 public static Dictionary<string, string> GetUserStatusesHistoryByUser(UserData user) 00782 { 00783 return RAIS.DataAccessLayer.UserManagement.GetUserStatusesHistoryByUser(user); 00784 } 00788 public static void UpdateContextVisibleName(string contextName, string contextVisibleName) 00789 { 00790 DataAccessLayer.UserManagement.UpdateContextVisibleName(contextName, contextVisibleName); 00791 } 00795 public static void DeleteContext(string contextName) 00796 { 00797 DataAccessLayer.UserManagement.DeleteContext(contextName); 00798 } 00799 00800 #endregion 00801 #region Private helper methods 00802 00810 static bool ValidateNewUserData(UserData userData, ref string returnMessage) 00811 { 00812 if (DataAccessLayer.UserManagement.UserExists(userData.Login)) 00813 { 00814 returnMessage = Common.Messages.USER_EXISTS_MESSAGE; 00815 return false; 00816 } 00817 else 00818 { 00819 returnMessage = Common.Messages.USER_ADDED; 00820 return ValidateUserData(userData, ref returnMessage); 00821 } 00822 } 00831 static bool ValidateUserDataModification(UserData userData, ref string returnMessage) 00832 { 00833 return ValidateUserData(userData, ref returnMessage); 00834 } 00843 static bool ValidateUserData(UserData userData, ref string returnMessage) 00844 { 00845 if (userData.CompleteName == null || userData.CompleteName.Length == 0) 00846 { 00847 returnMessage = Common.Messages.USER_COMPLETE_NAME_MISSING; 00848 return false; 00849 } 00850 else 00851 if (userData.Password == null || userData.Password.Length == 0) 00852 { 00853 returnMessage = Common.Messages.USER_PASSWORD_MISSING; 00854 return false; 00855 } 00856 else 00857 if (userData.Email.Length == 0) 00858 { 00859 returnMessage = Common.Messages.USER_EMAIL_MISSING; 00860 return false; 00861 } 00862 else 00863 { 00864 if (userData.IsActive && userData.Facility == null && userData.DataRole == null) 00865 { 00866 returnMessage = Common.Messages.USER_DATA_ROLE_FACILIY_MISSING; 00867 return false; 00868 } 00869 else 00870 { 00871 returnMessage = Common.Messages.USER_DETAILS_SAVED; 00872 return true; 00873 } 00874 } 00875 } 00876 #endregion 00877 00878 // #-# 00879 public static MessageBoxRestrictions getActiveMessageBoxRestrictionsForUser(UserData user) 00880 { 00881 return DataAccessLayer.UserManagement.getActiveMessageBoxRestrictionsForUser(user); 00882 } 00883 public static MessageBoxRestrictions getActiveMessageBoxRestrictionsForUser(UserData user, DateTime selectedDate) 00884 { 00885 return DataAccessLayer.UserManagement.getActiveMessageBoxRestrictionsForUser(user, selectedDate); 00886 } 00887 00888 /* 00889 * #+# 00890 */ 00891 public static DataRole getMessageBoxDataRoleByUser(UserData user) 00892 { 00893 return DataAccessLayer.UserManagement.getMessageBoxDataRoleByUser(user); 00894 } 00895 /* */ 00896 00897 public static DataRole getMessageBoxDataRoleByUserAndDate(UserData user, DateTime date) 00898 { 00899 return DataAccessLayer.UserManagement.getMessageBoxDataRoleByUserAndDate(user, date); 00900 } 00901 00902 public static List<UserData> GetUserFreeToTakeOver() 00903 { 00904 return DataAccessLayer.UserManagement.GetUserFreeToTakeOver(); 00905 } 00906 00907 public static bool clearTakeOverForUser(UserData user) 00908 { 00909 return DataAccessLayer.UserManagement.clearTakeOverForUser(user); 00910 } 00911 00912 //#-# 00913 public static bool saveMessageboxRestriction(UserData user, MessageBoxRestriction newMbr, ref string returnMessage) 00914 { 00915 00916 using (TransactionScope ts = new TransactionScope()) 00917 { 00918 bool success = true; 00919 00920 if (success) 00921 { 00922 success = RAIS.DataAccessLayer.UserManagement.saveMessageboxRestriction(user, newMbr, ref returnMessage); 00923 } 00924 if (success) 00925 { 00926 ts.Complete(); 00927 } 00928 return success; 00929 } 00930 } 00931 00932 00933 public static bool editMessageboxRestriction(UserData user, MessageBoxRestriction mbr, ref string returnMessage) 00934 { 00935 00936 using (TransactionScope ts = new TransactionScope()) 00937 { 00938 bool success = true; 00939 00940 if (success) 00941 { 00942 success = RAIS.DataAccessLayer.UserManagement.editMessageboxRestriction(user, mbr, ref returnMessage); 00943 } 00944 if (success) 00945 { 00946 ts.Complete(); 00947 } 00948 return success; 00949 } 00950 } 00951 00952 public static bool deleteMessageboxRestriction(UserData user, MessageBoxRestriction mbr, ref string returnMessage) 00953 { 00954 00955 using (TransactionScope ts = new TransactionScope()) 00956 { 00957 bool success = true; 00958 00959 if (success) 00960 { 00961 success = RAIS.DataAccessLayer.UserManagement.deleteMessageboxRestriction(user, mbr, ref returnMessage); 00962 } 00963 if (success) 00964 { 00965 ts.Complete(); 00966 } 00967 return success; 00968 } 00969 } 00970 00971 public static List<MessageBoxRestriction> MessageboxRestrictionHistoryForUser(UserData user, ref string returnMessage) 00972 { 00973 return DataAccessLayer.UserManagement.MessageboxRestrictionHistoryForUser(user, ref returnMessage); 00974 } 00975 00976 00977 public static Users GetLevelThreeUsers() 00978 { 00979 return DataAccessLayer.UserManagement.GetLevelThreeUsers(); 00980 } 00981 00982 //#-# 00983 public static bool createUserAssignmentForUser(UserAssignment ua, UserData ud, ref string outputMessage) 00984 { 00985 return DataAccessLayer.UserManagement.createUserAssignmentForUser(ua, ud, ref outputMessage); 00986 } 00987 00988 //#-# 00989 public static bool editUserAssignment(UserAssignment ua, ref string outputMessage) 00990 { 00991 return DataAccessLayer.UserManagement.editUserAssignment(ua, ref outputMessage); 00992 } 00993 00994 //#-# 00995 public static bool deleteUserAssignment(UserAssignment ua, ref string outputMessage) 00996 { 00997 return DataAccessLayer.UserManagement.deleteUserAssignment(ua, ref outputMessage); 00998 } 00999 01000 } 01001 }